Installation de Micro-K8s sous Windows

Publié le 21 décembre 2021

Sommaire

Installation de Micro-K8s

Téléchargement du software

Il faut aller sur le site https://microk8s.io/

Lien direct : https://microk8s.io/microk8s-installer.exe

Installation du cluster

L’installation de multipass m’ayant demander un reboot, il n’a pas installé automatiquement le cluster K8s, en effet, j’ai pu le vérifier comme ceci :

microk8s status --wait-ready

'Micro K8s not installed'

Comme je suis discipliné, j’écoute l’outil, je lance :

microk8s install

'Micro K8s installation'

Sans fibre, cela prend un petit moment.

Désormais si je retente ma commande microk8s status, j’obtiens ceci :

PS C:\Users\Edouard> microk8s status --wait-ready
microk8s is running
high-availability: no
  datastore master nodes: 127.0.0.1:19001
  datastore standby nodes: none
addons:
  enabled:
    ha-cluster           # Configure high availability on the current node
  disabled:
    ambassador           # Ambassador API Gateway and Ingress
    cilium               # SDN, fast with full network policy
    dashboard            # The Kubernetes dashboard
    dns                  # CoreDNS
    fluentd              # Elasticsearch-Fluentd-Kibana logging and monitoring
    gpu                  # Automatic enablement of Nvidia CUDA
    helm                 # Helm 2 - the package manager for Kubernetes
    helm3                # Helm 3 - Kubernetes package manager
    host-access          # Allow Pods connecting to Host services smoothly
    ingress              # Ingress controller for external access
    istio                # Core Istio service mesh services
    jaeger               # Kubernetes Jaeger operator with its simple config
    kata                 # Kata Containers is a secure runtime with lightweight VMS
    keda                 # Kubernetes-based Event Driven Autoscaling
    knative              # The Knative framework on Kubernetes.
    kubeflow             # Kubeflow for easy ML deployments
    linkerd              # Linkerd is a service mesh for Kubernetes and other frameworks
    metallb              # Loadbalancer for your Kubernetes cluster
    metrics-server       # K8s Metrics Server for API access to service metrics
    multus               # Multus CNI enables attaching multiple network interfaces to pods
    openebs              # OpenEBS is the open-source storage solution for Kubernetes
    openfaas             # openfaas serverless framework
    portainer            # Portainer UI for your Kubernetes cluster
    prometheus           # Prometheus operator for monitoring and logging
    rbac                 # Role-Based Access Control for authorisation
    registry             # Private image registry exposed on localhost:32000
    storage              # Storage class; allocates storage from host directory
    traefik              # traefik Ingress controller for external access

Et voilà, c’est installé !

Comme j’ai choisi d’installer kubectl, nous pouvons interroger notre cluster via l’utilisataire, comme ceci :

microk8s kubectl get nodes

'Micro K8s kubectl get nodes'

Installation de l’add-on Dashboard

Suivi de cette procédure : https://microk8s.io/docs/addon-dashboard

Activation du module : microk8s enable dashboard

Récupération d’un token si comme moi vous n’avez pas installé RBAC :

multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret $(multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)

A corriger dans cette commande :

  • le nom de votre instance Micro K8s : MicroK8sVM

Pour voir le nom de votre instance :

'Micro K8s name'

Etant directement sous Windows (pas sous WSL), les commandes Linux classique ne fonctionnent pas, la méthode la plus rapide étant de se connecter à la VM MicroK8s afin de récupérer le token :

multipass exec microk8s-vm -- bash

Puis d’exécuter la partie récupérant le nom du token à récupérer :

ubuntu@microk8s-vm:~$ sudo /snap/bin/microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1
default-token-z49xn

Ensuite nous modifions la commande de récupération du token :

multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret default-token-z49xn
PS C:\Users\Edouard> multipass exec microk8s-vm -- sudo /snap/bin/microk8s kubectl -n kube-system describe secret default-token-z49xn
Name:         default-token-z49xn
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: default
              kubernetes.io/service-account.uid: b00ee185-ee7f-4bea-9379-db39c1f11e4c

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1123 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiI ... cXBAtYilHMVjisMEHYUnZnlFxUJaUWXgeTePDIPrBX5aLP3Tj3-rIQ8cde0cpN0uIQtHpWbd-50bezGjFAUHQ

Nous mettons notre token de coté.

Ensuite nous réalisons un port-forward afin que notre Dashboard puisse être accessible depuis l’extérieur du cluster : multipass exec MicroK8sVM -- sudo /snap/bin/microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 --address 0.0.0.0

'Micro K8s port forward'

Le port forward redirigera le dashboard qui écoute sur le port 443 sur le cluster vers le port 10443 sur l’extérieur du cluster.

Il faudra laisser la commande tourner dans un prompt le temps de l’utilisation du port-forward.

La dernière étape est … de connaitre l’adresse IP de notre cluster :

multipass info microk8s-vm

'Micro K8s info'

Ici il faudra prendre la première adresse IP.

Ensuite pour vous connectez au Dashboard, il faudra vous rendre sur https://votre_cluster_ip:10443/

Une fois sur la page (et passé les alertes de sécurité), nous obtenons une demande d’authentification, ici nous choisirons par token (celui que l’on a stocké précédemment) :

'Micro K8s dashboard'

Récapitulatif des liens